The nicest thing about DSP is that your computer is a fully-functional laboratory: you just need access to a programming environment and you can easily implement all of the concepts that you will learn in this class.

To show you how easy and how fun it is to actually do signal processing, we have prepared a number of "numerical examples" that you can play with. We have chosen Python as the programming language and, to make things even easier for you, the code samples are packaged in the form of Jupyter Notebooks . The advantage of the notebook environment is that you don't have to install anything on your machine: the code can be run and edited from within your browser!

Here is a good introduction to Python (together with NumPy, SciPy, and matplotlib) and here is an overview of the Jupyter Notebook environment . We are sure that the convenience and flexibility of the Python+Notebook combo will win you over in no time, even if you've never used either beforehand.

Should you choose not to use Python, you are of course free to choose your favorite programming language instead. Just go through the notebooks and try to replicate their results in your environment (e.g. Matlab, C++, etc.)

The numerical examples are an integral part of the learning experience and we encourage you to get your hands dirty, so to speak, and play with them as much as possible. You are also encouraged to take the numerical examples as a starting point to write your own signal processing code; if you do, don't hesitate to share your efforts with your fellow students in the forum!